Skip to main content

11-dars. Fayllar (Matnli fayllarga ma'lumot yozish)

Darsning Maqsadlari:

  • Fayllar bilan ishlashni o'rganish.
  • Faylni e'lon qilish va ochish jarayonini tushunish.
  • Fayllarga ma'lumot yozish va o'qish uchun zarur funksiyalarni o'zlashtirish.
  • Fayl pozitsiyasini boshqarish funksiyalarini tushunish.

Fayllar Nima?

Fayllar kompyuterda ma'lumotlarni saqlash va boshqarish uchun ishlatiladi. Fayllar matnli, binar yoki boshqa formatlarda bo'lishi mumkin. Bugungi darsda biz matnli fayllar bilan ishlashni o'rganamiz. Matnli fayllar — bu ASCII yoki Unicode kabi kodlashda yozilgan fayllardir.


Faylni E'lon Qilish

Faylni e'lon qilish dasturda faylga murojaat qilish imkonini beradi. Buni FILE tipidagi o'zgaruvchi yordamida amalga oshiramiz.

Misol:

FILE *fayl;

Izoh

  • FILE — bu faylni boshqarish uchun foydalaniladigan tuzilma.
  • fayl — bu faylga murojaat qilish uchun ko'rsatkich.

Faylni Ochish: fopen

Faylni ochish uchun fopen funksiyasidan foydalanamiz. Sintaksisi:

FILE *fopen(const char *filename, const char *mode);
  • filename — ochiladigan faylning nomi.
  • mode — faylni ochish rejimi (masalan, "r" — o'qish, "w" — yozish, "a" — qo'shish).

Misol:

fayl = fopen("misol.txt", "w"); // Faylni yozish uchun ochamiz

Faylni Yopish: fclose

Faylni yopish uchun fclose funksiyasidan foydalanamiz. Sintaksisi:

int fclose(FILE *stream);

Misol:

fclose(fayl); // Faylni yopamiz

Faylni yopish kerak, chunki ochiq fayl bilan ishlashda xatoliklar yuzaga kelishi mumkin.


Faylga Ma'lumot Yozish: fputc va fputs

fputc

Bu funksiya bitta belgi (character) yozish uchun ishlatiladi.

int fputc(int char, FILE *stream);

Misol:

fputc('A', fayl); // 'A' belgisini faylga yozamiz

fputs

Bu funksiya satrni (string) faylga yozish uchun ishlatiladi.

int fputs(const char *str, FILE *stream);

Misol:

fputs("Salom, dunyo!", fayl); // "Salom, dunyo!" satrini faylga yozamiz

fputc faqat bitta belgi yozadi, fputs esa butun satrni yozadi.


Fayldan Ma'lumot O'qish: fscanf

Bu funksiya formatlangan ma'lumotlarni fayldan o'qish uchun ishlatiladi.

int fscanf(FILE *stream, const char *format, ...);

Misol:

int son;
fscanf(fayl, "%d", &son); // Fayldan butun sonni o'qiymiz

fscanf formatlash imkoniyatini beradi, shuning uchun kerakli turdagi ma'lumotlarni olish osonlashadi.


Fayl Pozitsiyasini Boshqarish: fseek va ftell

fseek

Bu funksiya fayl ichida pozitsiyani o'zgartirish uchun ishlatiladi.

int fseek(FILE *stream, long offset, int whence);

Misol:

fseek(fayl, 0, SEEK_SET); // Fayl boshidan boshlash

ftell

Bu funksiya hozirgi pozitsiyani aniqlash uchun ishlatiladi.

long ftell(FILE *stream);

Misol:

long pozitsiya = ftell(fayl); // Hozirgi pozitsiyani olish

fseek fayl ichida harakatlanish imkonini beradi, ftell esa qayerda ekanligimizni bilishimiz uchun kerak.


Xulosa

Bugun biz fayllar bilan ishlashni, matnli faylga ma'lumot yozish va o'qish funksiyalarini o'rganib chiqdik. Fayllar dasturlashda muhim o'rin tutadi va ularni to'g'ri ishlatish dasturiy ta'minotni yanada samarali qiladi.


Savollar:

  1. fopen va fclose funksiyalarining maqsadi nima?
  2. fputc va fputs o'rtasidagi farq nima?
  3. fscanf funksiyasining sintaksisi qanday?
  4. Fayl pozitsiyasini qanday boshqarishimiz mumkin?